Methods for handling calendar information in a data processing system

ABSTRACT

The present invention relates to methods of automatically generating a data stream in which a calendar owner can request the status of a plurality of calenders maintained by an electronic calendaring system. A first data structure is generated by the system in response to the entry of calendar information by the calendar owner. The first data structure includes a plurality of predetermined fields for storing the calendar information. Each of the plurality of fields are compared to equivalent fields in identified ones of the plurality of calendars. A second data structure is then generated for each of the identified ones of the plurality of calendars which sets forth the status of calendaring an event thereon. The second data structure is transmitted to the calendar owner to confirm the status of each of the identified ones of the plurality of calendars.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is related in subject matter to the followingapplications filed concurrently herewith and assigned to a commonassignee:

Application Ser. No. 07/136,254 (IBM Docket filed by K. J. Scully et al.entitled "Method of Exchanging Entries from a Plurality of DifferentElectronic Calendars Based on Interactively Entered Criteria".

FIELD OF INVENTION

This invention relates in general to electronic calendaring methods, andin particular, to a methods of automatically building a data streambased on criteria that is entered interactively by a calendar owner.

BACKGROUND ART

The prior art has disclosed a number and variety of interactiveelectronic calendaring systems and methods. The objective of all ofthese systems is primarily to assist the person who, for a number ofdifferent reasons, maintains a calendar of future events containingvarious information about the event at entry points on the calendarwhich relate to the time of the event.

The increase of personal computers and intelligent workstations inrecent years has made it possible for calendar owners to establish andmaintain their calendars on these interactive type data processingsystems. Hence, the term "electronic calendaring."

Two general types of interactive electronic calendaring systems havethus evolved in the art. In one type of calendaring system, the owner ofthe calendar is generally also the user of the workstation and thatworkstation is generally not a part of a larger network. Generally, inthese types of systems, the calendar functions involve presenting ascreen to the user representing a day calendar divided into a number oftime periods or time slots. Each period is capable of displaying alimited amount of text that the user enters. In some systems, the daycalendar can scroll vertically to present more time periods to the useror horizontally to present longer text entries. The operator cangenerally "page" forward or backward and, in most arrangements, candisplay a requested date. These calendaring methods generally do notlimit the type of event that is calendared nor the terminology employedat any of the entry points and, to that extent, function in the samemanner as conventional manual calendars or appointment books. Theelectronic calendaring method and systems do have an advantage over theprior art manual calendaring of events in that the user generally hasthe ability to scan a time span involving a large number of days andidentify calendared events quite rapidly.

The other type of calendaring arrangement that has developed in theprior art involves multi-user environments having a large number ofterminals or workstations which are generally part of a largercommunication network. Usually these networks have been established topermit the users to interact with each other and with data maintained onthe system. In this environment, a user at a terminal or workstation cansend a message to one or more of the other users on the networkconcurrently, and is notified when the addressees have received and readthe message. In most of these environments, each user generallymaintains a calendar, and in many of these environments the reason forhaving a network in which users interact, quite often involves userinteraction that requires reference to the respective electroniccalendars of the users. A considerable amount of time is therefore spentby calendar users in many organizations, with people checking andrearranging their calendars to accommodate various events such asmeetings and presentations. Calendar systems have progressed to thepoint where a person who is calling a meeting can at least view thecalendars of a number of users that he intends to invite to a meeting,in order to determine a common available time for the meeting.

In this prior art system, a screen is presented to the meetingoriginator which requests the data necessary for the system to determinetimes that all potential attendees would be available. The datarequested includes, for example, the length of the meeting, a timeperiod during which the meeting should be conducted, the place of themeeting and the names of the attendees. Based on this data, the methodreturns a screen of available times after inspecting each attendee's daycalendar during the time period for free time slots or periods.

The originator then selects the beginning time and end time of themeeting, including the time and date, and invitations are automaticallysent to all the attendees, requesting their attendance at the scheduledmeeting.

While such an automatic system saves time in finding a convenientmeeting time, relative to the manual process, the process is limited tothe scheduling of meetings based on "free time" as represented by theabsence of a calendar entry on each of the inspected calendars. Thisapproach does not recognize that some calendar entries are lessimportant than others and, in practice, it is often impossible to find acommon period of "free time" for a meeting that involves a large groupof people or a meeting involving a number of people whose work requiresa large number of meetings.

The prior art systems are limited to examining calendars of others inconnection with setting up a meeting. It was soon recognized that therewere other situations besides calling a meeting where it would bebeneficial to be able to create a "selected view" of a number ofindividual calendars.

A department manager, for example, may have an assignment that can begiven to a number of different people in his department. If thecalendaring system could display to the manager the calendared events ofeach of these people which meet a set of search criteria entered intothis system interactively by the manager, considerable time and effortcould be saved by everyone involved. While time available or free timemay be one of the search criteria entered, other criteria such as therelative importance of the events that are calendared to the newassignment, might also provide the manager with more relevant data thanjust free time. Also, identifying the person who handled the same orsimilar assignment in the past, similar assignments scheduled in thefuture or other assignments scheduled at the same geographic location orcustomer could be important criteria for the manager to employ. Thesedeficiencies of the prior art electronic calendaring methods, namelyusing only free time to find relevant calendar entries, are overcome bythe present invention.

SUMMARY OF THE INVENTION

The present invention relates to methods of automatically generating adata stream in which a calendar owner can request the status of aplurality of calendars maintained by an electronic calendaring system. Afirst data structure is generated by the system in response to the entryof calendar information by the calendar owner. The first data structureincludes a plurality of predetermined fields for storing the calendarinformation. Each of the plurality of fields are compared to equivalentfields in identified ones of the plurality of calendars. A second datastructure is then generated for each of the identified ones of theplurality of calendars which sets forth the status of calendaring anevent thereon. The second data structure is transmitted to the calendarowner to confirm the status of each of the identified ones of theplurality of calendars.

DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an interactive workstation in which the method of thepresent invention may be advantageously employed.

FIG. 2 illustrates a network of interactive workstations of the typeshown in FIG. 1.

FIG. 3 illustrates a structure of a calendar object which is employed bythe present invention.

FIG. 4 illustrates a structure of a calendar triplet which is employedby the calendar object of FIG. 3.

FIGS. 5a through 5c are screens presented to a calendar owner to assistin defining criteria to be used by the system in selecting calendarentries during a calendar entry function.

FIG. 6 is a screen presented to the calendar owner to assist in theautomatic invocation of a plurality of calendar functions in accordancewith the principles of the invention.

FIGS. 7 and 8/illustrate a flow chart illustrating the detailed steps ofthe method of the present invention.

BRIEF DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 illustrates the functional components of an interactive type dataprocessing terminal on which the electronic calendaring method of thepresent invention may be advantageously employed. The terminal comprisesa processing unit 11 which includes a microprocessor block 12, asemiconductor memory 13, and a control block 14 which functions tocontrol input/output operations in addition to the interaction betweenthe micro-processor block 12 and the memory unit 13.

The terminal further includes a group of conventional peripheral unitsincluding a display device 16, a keyboard 17, a printer 18, a diskstorage unit 19, and a modem 20. Since the details of theabove-described functional blocks form no part of the present inventionand can be found in the prior art, only a brief functional descriptionof each block is set forth, along with a description of theirinteractions, sufficient to provide a person of ordinary skill in theart with a basis of understanding applicants improved electroniccalendaring method.

Processing unit 11 corresponds to the "system unit" of a personalcomputer system such as the IBM XT or IBM AT type systems. Unit 11 isprovided with an operating system program which may be one of the manyversions of DOS (Disk Operating System) which is normally employed torun the systems. The operating system program is stored in memory 13along with one or more application programs that the user has selectedto run. Depending on the capacity of memory 13 and the size of theapplication programs, portions of these programs, as needed, may betransferred to memory 13 from the disk storage unit 19 which mayinclude, for example, a 30 megabyte hard disk drive and a diskettedrive. The basic function of the disk storage unit is to store programsand data that are employed by the system and which may readily betransferred to the memory unit 13 when needed. The function of thediskette drive is to provide a removable storage function for enteringprograms and data into the system, and a vehicle for storing data in aform that is readily transportable for use on other terminals orsystems.

Display device 16 and keyboard 17 together provide for the interactivenature of the terminal, in that in normal operation, the interpretationthat the system gives to a specific keystroke by the operator depends,in substantially all situations, on what is being displayed to theoperator at that point in time.

In some situations, the operator, by entering commands into the system,causes the system to perform a certain function. In other situations,the system requests the entry of certain data, generally by displaying aprompt type of menu/message screen. The depth of the interaction betweenthe operator and the system varies by the type of operating system andthe application program, but is a necessary characteristic of terminalson which the method of the present invention may be employed.

The terminal shown in FIG. 1 further includes a printer 18, whichfunctions to provide hard copy output of data developed or stored in theterminal. Lastly, the modem 20 functions to transfer data from theterminal of FIG. 1 to a host system through one or more communicationlinks which may be a commercial type link or a dedicated communicationlink.

FIG. 2 illustrates a first information processing system which includesa network 21 of interactive type workstations of the type shown inFIG. 1. As illustrated, the network 21 includes a plurality of terminalswhich are interconnected with each other and to a host centralprocessing unit 23. The information processing system is connected viacommunication link 24 to a second information processing system whichincludes a host processing unit 25 and a network 26 of interactiveworkstations. Functionally, each of the systems operates to allow oneterminal to communicate to one or more other terminals using establishedcommunication protocols, so that the various serially connectedcommunication links are transparent to the operator. Such systems arewell known in the art, and are currently in extensive commercial use.Since these communication links per se are not part of the presentinvention, only those details that are necessary for an understanding ofthe calendaring method of the present invention will be described. Itshould therefore be assumed in the following description, that eachworkstation on the network has a system node address and a "post office"address, and that to simplify the description, there is only oneindividual assigned to each node on the network. It should further beassumed that conventional communication services are provided by thesystem, such as directory listings of individual calendar owners andshareable resources such as meeting rooms, etc., which requirescheduling.

The system shown in FIG. 2 processes information as various types ofdata objects such as text data objects, graphic data objects, andcalendar data objects. Each of these data objects are represented by adata stream which comprises a series of structured fields.

FIG. 3 shows a Trigger (TGR) calendar structure which is required by thepresent invention to generate a data stream. The TGR structure supportsthe interchange of a trigger entry. The trigger entry provides a way tonotify either the calendar owner or specified list or lists of calendarusers. Notification may occur in the form of an audio alarm and/or acharacter message. The TGR structure also specifies a time that anotification will occur and/or a process will begin. The TGR structureincludes the following triplets:

STRUCTURE ID: The structure ID is a 1 to 44 byte identifier thatidentifies the Trigger. Optional structure IDs may be included to selecta names list associated with a meeting or to select a names listdirectly or to perform both of these functions. Calendar ownersappearing on the selected list or lists are notified upon the occurrenceof the trigger time. If a list is not identified, then only the calendarowner generating the data stream is identified. One optional processstructure ID is allowed in a TGR structure to select a process to bestarted at the trigger time.

TRIGGER TYPE: The trigger type triplet is used to activate the correctsupport program when a TGR structure is processed.

DATE AND TIME: The date and time triplet provides the time that thetrigger process begins. More than one date and time triplet is allowedin the TGR structure.

FIG. 4 shows the structure of the Trigger Type (TTP) triplet. The TTPtriplet provides a trigger type for use in the TGR structure. Thetrigger may be used to activate the correct support program when a TGRstructure is processed.

TTP Parameters

TYPE: Specifies whether the trigger is a message, audio tone, process ora combination trigger. Any combination of the following triggers isallowed.

BIT

0 - Message Trigger (Default)--A message will be circulated to aselected list at a selected time.

1 - Audio Trigger--An audio tone will be circulated to a selected listat a selected time.

2 - Process Trigger--The process identified by a process ID will bestarted at a selected time.

The structure ID triplet, the date and time triplet and other calendarstructures and calendar triplets which are relevant to the presentinvention 30 are disclosed in a copending application, Ser. No. 008,034,filed Jan. 29, 1987, in the name of K. J. Scully et al. and assigned tothe assignee of this application and which is incorporated herein byreference thereto.

The Process of Automatically Building a Data Stream

The present invention includes generating a data stream whichfacilitates the automatic scheduling a of meeting, requesting the statusof a scheduled meeting, canceling a meeting, requesting the status ofinvitees to a scheduled meeting, requesting a view of one or morecalendars resident on the information processing systems, and requestingdate and time map representations of a plurality of calendars in orderto determine unused time slots.

Shown in FIG. 5a is a main menu screen which is displayed to anoperator/calendar owner in response to the owner indicating to thesystem that a calendar function is to be performed. Upon the display ofthe main menu screen, the operator selects one of the plurality offunctions displayed on the screen. In accordance with the presentinvention, the operator selects the function which pertains to buildinga, data stream. Therefore, the operator first selects a Calendar Entryfunction either by entering the numeral associated with the functionCalendar Entry and pressing an enter key (not shown) on the keyboard 17or by positioning a cursor adjacent to the function Calendar Entry onthe display 16 and pressing the enter key.

In response to the selection of the Calendar Entry function, the systemto which the operator is assigned, displays a first of two calendarentry screens, the first of which is shown in FIG. 5b. The operator thenenters a classification for the calendar function to be performed orcalendar event to be impacted by the data stream. The operator may entera user defined field which enables the system to search a plurality ofcalendars stored on the system to which the operator's terminal isconnected or to a system connected to the system by the suitablecommunications PG,13 link 24. A priority level is entered whichindicates the importance of the calendar event associated with the datastream in relationship to existing entries currently scheduled on aplurality of calendars to be searched. In essence, if the data stream isgenerated to schedule a meeting on a plurality of calendars, then onlycurrently existing entries on the plurality of calendars having apriority equal to or greater than that associated with the data streamwill remain unchanged or will not be preempted by the data stream. Anevent identifier must be entered indicating a calendar event which thedata stream will affect. The operator must then enter whether the datastream is to schedule, reschedule, postpone or cancel the calendar eventset forth in the classification list. A status request operand isentered to indicate either the data stream involves a function relatingto a meeting or an invitee to the meeting. The calendar screen shown inFIG. 5b enables the operator to either send a meeting schedule requestto a plurality of owners of associated calendars stored on theinformation processing systems seeking feedback in regards to thescheduling of the meeting or to automatically schedule the meeting onthe associated calendars.

If the operator desires only to send a request to the plurality ofowners, a time span, a distribution list or a list of names of calendarowners to be invited to the meeting, the name of the person calling themeeting, the subject and the place of the meeting is entered. Theoperator may also include any additional details which the operatordesires to transmit to any named recipients along with the meetingscheduling request. The operator may also include an indication in thetime span whether the time information associated with a given day inthe time span will be repeated. As indicated on the first calendar entryscreen, the meeting is to be scheduled for two and one-half daysalthough there are only two lines for time and date information. Thesecond line includes a "RX" function where "X" represents the number ofdays the same time is to be repeated. Thus, as noted in the FIG. 5b,"R2" causes the system to schedule a first meeting day starting at 1:15PM and ending at 5:00 PM and a second and a third day starting at 8:30AM and ending at 5:00 PM. After the operator has entered all of theabove-identified information, if the operator has selected the send arequest option, the operator then presses a key associated with a "nextscreen" function indicated near the bottom of the first screen to enablethe system to display a second calendar entry screen shown in FIG. 5c.

Shown in FIG. 5c is the second calendar entry screen which enables theoperator to enter the operator's security level for the calendarfunction to be performed, a status indicator and to identify the type oftrigger to be used in the calendar function to be performed. Thesecurity level indicates whether the operator has been cleared to accessor view each of the calendars associated with the name list. The statusindicator relates to whether the meeting as set forth in the calendarrequest is to be held as scheduled or the time is tentative. The triggerindicates the type of notice which will go to each of the named inviteesprior to the scheduled meeting. As indicated on the screen, the triggeris a reminder which is sent to each of the named invitees and may be amessage, a audio tone and/or the initiating of a process to be performedin preparation for the meeting. Additionally, the operator must enterthe time span within which trigger function must occur. For purposes ofillustration, the message to be displayed to each of the named inviteesand/or the audio tone to be sent to each of the named invitees and/orthe initiation of the process if the selected trigger is a message andthe process will occur at the time indicated in the time span which isimmediately prior to the scheduled meeting. The process to be performedmay be a computer process which prints the latest budget calculationsfor the scheduled meeting. The message may also indicate that each ofthe named invitees must pick up the latest printout prior to attendingthe meeting. The operator also enters whether the trigger will be afixed trigger or a floating trigger. This entry enables to the triggerto move to the same time span if the calendar event associated with thetrigger is rescheduled or moved to a different time span. Thereafter,the operator initiates the execution of the request function by pressinga key associated with "send notice" function indicated at the bottom ofthe second calendar entry screen. The system then re-displays the mainmenu screen shown in FIG. 5a.

If the operator desires to automatically schedule the meeting on theassociated calendars, the operator leaves the time span section of thescreen blank. However, the operator must indicate the names list, theidentification of the person calling the meeting, the subject of themeeting and the place of the meeting. As stated above, the operator mayinclude the transmission of any additional details which the operatordesires to transmit to the calendar owners indicated in the names listwhen the meeting is scheduled. Then the operator indicates whether anautomatic scheduling of the calendar event is to occur and the durationof the event. Additionally, the operator must enter a search criteriawhich enables the system to preempt certain events which are scheduledon the respective calendars associated with the names list or thedistribution list. Thus, if auto schedule is selected by the operator,the meeting will be scheduled into a time slot which does not includeany of the criteria entered by the operator. As indicated in the firstcalendar entry screen, the operator is restricting the scheduling of themeeting in any time slot wherein any of the following event arescheduled: any confirmed appointment which the calendar owner willattend, any confirmed meeting which the calendar owner will attend, anyevent having a priority equal to or greater than a priority of "3", or auser defined field "SEPTEMBE". After the operator has entered all of theabove-identified information, if the operator has selected the autoschedule function, the operator then presses a key associated the "beginsearch" function to enable the system to automatically schedule themeeting on the associated calendars.

Referring again to FIG. 5a, after receiving responses from the namedinvitees in response to the notice, the operator may want either toschedule the meeting, to automatically schedule the meeting or to set upan automatic scheduling of the meeting at a regular interval. Theoperator then selects an Auto Invocation function displayed on the mainmenu screen. The system, in response to the selection of the AutoInvocation function, displays an auto invocation screen shown in FIG. 6

The auto invocation screen enables the operator to automaticallyschedule a meeting, determine the status of a specified invitee to aselected meeting, determine the meetings which will be attended by adesignated invitee during a time span, request a view of a specifiedcalendar, and request date and time bit maps or composite calendar froma plurality of specified calendars.

Upon the display of the auto invocation screen, the operator enters thename of the meeting to be scheduled, the name of the individual callingthe meeting and the associated calendar address, the begin date and anindication of whether the meeting is to be scheduled at set intervalssuch as every 30 or 45 days. The operator may also enter data relatingto the cancellation of the meeting. The name of an invitee which isrequired to attend the meeting and a period at which the meeting will beautomatically canceled if the required invitee will not attend must beentered. After the operator has entered this information for the meetingto be scheduled, the operator presses a key associated with "file andbegin process" function indicated at the bottom of the auto invocationscreen. As noted above, the scheduled meeting may be automaticallycanceled if the required invitee will not be attending the meeting. Morethan one required invitee may be entered and the system will request theattendance status of the required invitees at the specified interval. Ifthe specified invitees will not attend, the system will cancel themeeting.

Information which is provided for the automatic scheduling function, isrequired for requesting the meeting status for a specified invitee'sattendance to a selected meeting. The operator may enter data whichenables the system to execute the request beginning at a specified dateand repeating the request at a specified interval or to execute therequest at a specified number of days prior to the scheduled meeting.

Similar intervals may be entered in regards to requesting meetingattendee or invitee status, calendar view request, calendar date andtime request.

In requesting the date and time request, the operator may enter variouscombinations of view criteria. The view criteria, which is similar tothe search criteria disclosed above, enables the system to search forfree time on the calendars identified and generate composite for each ofthe sets of calendars identified in the calendar date and time requestsection of the auto invocation screen.

After the operator has entered all of the above-identified informationfor the function to be automatically invoked, the operator then pressesa key associated with a "file and begin process" function indicated nearthe bottom of the auto invocation screen. The system will re-display themain menu screen shown in FIG. 5a while it executes the selected autofunction.

Set out below is an illustration of a program for generating theautobuild data stream. The program is in program design language fromwhich source code and machine code are derivable.

    __________________________________________________________________________    AUTOBUILD DATA STREAM PROC                                                    DO SELECT AUTO RESPONSE IN MASTER MENU                                        IF A MEETING HAS BEEN SCHEDULED USING THE                                            CALENDAR ENTRY PROCESS                                                        THEN IF A MEETING SHOULD BE SCHEDULED AT                                           REGULAR INTERVALS THEN ENTER DATA FOR                                         AUTOMATICALLY SCHEDULING THE NAMED                                            MEETING                                                                      ENDIF                                                              ENDIF                                                                         IF MEETING STATUS, MEETING STATUS IN SELECTED                                        TIMESPANS, MEETING ATTENDEE STATUS, CALENDAR                                  VIEWS AND/OR CALENDAR DATE AND TIME MAPS ARE                                  REQUIRED                                                                          THEN ENTER DATA FOR AUTOMATICALLY                                                 REQUESTING THE REQUIRED                                                       INFORMATION                                                    ENDIF                                                                         IF ALL REQUIRED INFORMATION IS ENTERED THEN START                                    REQUESTING PROCESS                                                     ENDIF                                                                         END AUTOBUILD DATA STREAM PROC                                                BEGIN AUTO RESPONSE PROCESS                                                   IF A CALENDAR STRUCTURE INVOKES THE AUTO RESPONSE                                    THEN PASS CONTROL TO THE AUTO RESPONSE                                            PROCESS WITH THE ASSOCIATED CALENDAR                                          STRUCTURE TO IDENTIFY WHAT THE PROCESS                                        SHOULD DO                                                          ENDIF                                                                         IF EITHER MEETING STATUS, INVITEE STATUS, VIEW,                                      DATE AND TIME MAP OR A MEETING CANCEL                                         REQUEST IS REQUIRED                                                           THEN BUILD THE CORRECT CALENDAR                                                   STRUCTURE FOR TRANSMISSION AND SEND THE                                       STRUCTURE TO THE DISTRIBUTION LIST                                 ENDIF                                                                         IF A MEETING SCHEDULE REQUEST IS REQUIRED                                            THEN SEND A DATE AND TIME MAP TO                                                  DISTRIBUTION TO SELECT A FREE TIME AND                                        THEN BUILD A MEETING STRUCTURE AND                                            TRANSMIT THE STRUCTURE TO THE MEETING                                         INVITEES (DISTRIBUTION)                                            ENDIF                                                                         IF THE REQUEST IS FOR A RESPONSE TO A MEETING                                        INVITATION, A RESPONSE TO MEETING INVITEE                                     STATUS, A REQUEST FOR A CALENDAR VIEW OR A                                    REQUEST FOR A DATE AND TIME MAP AND THE                                       REQUESTOR DOESN'T HAVE THE CORRECT SECURITY                                       THEN PUT A NOTICE IN THE MAIL THAT A                                            MANUAL RESPONSE IS REQUIRED                                                      ELSE IF THE REQUEST IS FOR A                                                      REQUEST FOR A CALENDAR VIEW                                                   OR A REQUEST FOR A DATE AND                                                   TIME MAP AND THE REQUESTOR                                                    DOES HAVE THE CORRECT                                                         SECURITY THEN BUILD AND SEND                                                  THE ASSOCIATED CALENDAR                                                       STRUCTURE BACK TO THE                                                         REQUESTOR                                                                     ENDIF                                                     ENDIF                                                                         IF THE REQUEST IS FOR A MEETING STATUS OR FOR                                        MEETING INVITEE STATUS AND AN ASSOCIATED                                      AUTO RESPONSE STRUCTURE HAS NOT BEEN                                          PREPARED                                                                          THEN PUT A NOTICE IN THE MAIL THAT A                                              MANUAL RESPONSE IS REQUIRED                                                        ELSE IF THE REQUEST IS FOR A                                                       MEETING STATUS OR FOR                                                         MEETING INVITEE STATUS                                                        AND AN ASSOCIATED AUTO                                                        RESPONSE STRUCTURE HAS                                                        BEEN PREPARED THEN                                                            BUILD AND SEND THE                                                            ASSOCIATED CALENDARS                                                          STRUCTURE BACK TO THE                                                         REQUESTOR AND PUT NOTE                                                        IN MAIL THAT A                                                                RESPONSE HAS BEEN SENT                                                      ENDIF                                                  ENDIF                                                                         END AUTO RESPONSE PROC                                                        __________________________________________________________________________

FIGS. 7 and 8 show flow diagrams for the autobuild data stream procedureand the auto response process. Referring first to FIG. 7, the calendarprocess represented by block 101 interacts with the auto responseprocess in block 102 which then interacts with the names list in block103, the auto response structure in block 104, the meeting informationin block 105, the trigger structures in block 106 and the programprocess in block 107 to establish the automatic invocation process. Thecommunication process in block 101 on system one interacts with thecommunication process in block 108 on system two to transmit and receiveresponse thereto and therefrom, respectively. System two in block 109determines whether the calendar event to be scheduled is a meetingschedule request. If the calendar event is not a meeting schedulerequest, the calendar event or function, control is transferred to block110 where the function is executed. Thereafter, the control istransferred back to block 108.

If the calendar event is a meeting schedule request, control istransferred from block 109 to block 111 to retrieve the address of thecalendars associated with the names indicated in the names list entry.The automatic response process then interacts with the names list untilall of the calendar owners included in the names list are notified ofthe meeting. Thereafter, the automatic response process in block 112then interacts with the names list in block 111, the automatic responsestructures and the calendar communication process in block 108 to buildand transmit the appropriate responses to the requestor or operator onsystem one. When all of the responses have been built and transmitted tosystem one, control is transferred from block 114 to the calendarcommunication process in block 101 through the communication process inblock 108.

Referring to FIG. 8, block 201 determines if the interaction betweenblock 101 (FIG. 7) of the autobuild process and the auto responseprocess resulted in the generation of a meeting status request, aninvitee status request, a view request or a date and time map request,control is transferred from block 201 to block 202 to build the correctcalendar structure for transmission to the distribution list in block205. However, if in the determination in block 201 is not one of therequests set forth above, then block 206 determines if the interactionresulted in a meeting is to be canceled. Control is transferred fromblock 206 to blocks 202 and 205 to build and transmit a cancel meetingdata structure to the calendar process in block 101 (FIG. 7).

If a meeting is not being canceled in block 206, control is transferredto block 207 to determine whether a meeting is to be scheduled. If themeeting is to be scheduled, the time and date map process is invoked inblock 203 to locate open time on the invitees calendars. After the timehas been determined for the meeting, the correct structure is builtblock 204 for transmission to the invitees in block 205. Control is thenreturned to the calendar process in block 101.

If the information requestor or operator does not have the propersecurity level in block 208, the request is placed in the mail for amanual response and control is returned to the calendar process throughblock 214. If the requestor has the proper security level and a responseto a view or date and time map is required in block 209, the view ordate and time map response is built and transmitted in block 215 andcontrol is transferred from block 215 to the calendar process.Similarly, if an auto response structure does not exist for an automaticresponse in block 210, the request is placed in the mail for manualresponse in block 216 and control is transferred from block 216 to thecalendar process.

If a corresponding auto response structure is available in block 210, aresponse is built which contains either the attendance status or themeeting status in block 211. Block 212 determines whether the responseis an invitee status request and transfers control to block 217 to sendthe invitee status and a note is put in the mail in block 218 whichindicates that a response was sent. Control is then transferred fromblock 218 to the calendar process.

If, however, the response in block 212 was not the response to aninvitee status request, then response is built in response to a meetingrequest. Thereafter, the meeting request is scheduled on the calendar inblock 213. A response is then sent with an attendance status in block217 and a note is placed in the mail in block 218. Control is thentransferred from block 218 to the calendar process.

While the invention has been shown and illustrated with reference to apreferred embodiment, it will be understood by those skilled in the artthat various modifications may be made without departing from the spiritof the invention and scope of the appended claims.

We claim:
 1. In a data processing system including a network ofinteractive workstations, a method of relating calendar informationbeing maintained within said system, as represented by data of at leastone calendar of a first individual user of said systemcomprising:establishing in said data processing system by a second user,a first data structure which includes calendar information relating to astatus of said at least one calendar, said information including theparameters of:an identification of a calendar event; a tentative ordefinite status for said calendar event; a priority for said calendarevent; a time span for said calendar event; and a list of namesassociated with a plurality of calendars being maintained on saidsystem; first comprising, by said data processing system, a securitylevel of said second user with a security level of said an owner of saidat least one calendar; second comparing, by said data processing systemand in response to said first comparing, said calendar information insaid first data structure with said data of said at least one calendar;automatically generating, by said data processing system and in responseto said second comparing, of said at least one calendar as regards saidcalendar information in said first data structure; transmitting saidsecond data structure to said second user to confirm said status of saidat least one calendar; enabling an automatic scheduling of an event insaid at least one calendar in response to said status by transmitting atrigger, which is a reminder of said calendar event, at a designatedtime selected by said second user to selected other users who maintaincalendars on said data processing system.
 2. The method as recited inclaim 1 wherein said trigger is a message trigger and wherein saidmethod further includes the step of generating a message to betransmitted to said calendars associated with said list of names at saiddesignated time.
 3. The method of claim 1 wherein said trigger audiotone.
 4. The method of claim 1 wherein said trigger is a process andwherein said method further includes the step of identifying saidprocess to be executed at said designated time.
 5. The method of claim 1further including the step of selecting more than one trigger.
 6. Themethod as recited in claim 1, wherein said step of scheduling an eventincludes the step of automatically requesting the status of a specifiedmeeting at a specified time.
 7. The method as recited in claim 6 furtherincludes the steps of:identifying an attendee which is required toattend said specified meeting; and voiding operations undertaken in saidscheduling an event step at a specified time in response to a status ofsaid specified attendee indicating non-attendance at said specifiedmeeting.
 8. The method as recited in claim 1, wherein said step ofscheduling an event includes the step of requesting the status of anidentified attendee at a specified meeting at a specified time.
 9. Themethod as recited in claim 1, wherein said step of scheduling an eventincludes the step of requesting the status of attendees previouslyscheduled to attend a specified meeting.